Networked computer systems may be organized in a variety of configurations. In a local configuration, a number of user nodes may be coupled via a network to a central file server. In the local configuration, each of the nodes stores a local copy of all of the application programs that are available to that node. In addition, each node stores operating parameters for controlling accesses by that node to external devices such as disks and printers.
One example of a local configuration would be a number of personal computers coupled via an Ethernet link to a file server. As the personal computer is powered up, an initialization script is executed to assign printers to the print ports of the personal computer. In addition, during initialization, application programs, resident on the personal computer, are loaded and made available to a user via icons.
Because the application and operating parameters of the user workstations are stored remotely at each workstation, whenever an upgrade of an application or an update of the operating parameters is required, the upgrade and update must be made at each individual workstation. In the above example, if a printer was to become unavailable in the network, the initialization script of each of the personal computers would have to be updated to prevent assignment of the unavailable printer to a printer port of the personal computer. Thus networked configurations having applications and operating parameters stored locally are often difficult to upgrade and maintain.
Global network configurations may also include a number of nodes coupled to a file server. However, in a global network configuration, resources such as applications and printer controllers are shared by each of the nodes in the system. The resources may be distributed among different devices in the network, or stored in a central database. Access to the resources controlled by creating an object for each resource and controlling accesses to that object. An object consists of properties and the values of data corresponding to those properties. A network which uses objects to control accesses to resources is referred as an object-oriented network.
A global naming service for use in an object-oriented network is the NetWare Directory Services (NDS) database (available from Novell, Inc., Orem Utah). NDS provides a global directory containing information about all of the objects in a network, regardless of their location.
The global network arrangements facilitate upgrades and maintenance of the network. For example, because only one copy of an application exists in the global network, only one copy of the application needs to be upgraded. In addition, if a printer becomes disabled, accesses to that printer may similarly be disabled by disabling access to the printer object.
One drawback of the global naming service arises due to the number of objects that are created in the network. An object is created for each user in the network. Likewise, an object is created for each application and each resource in the network. Objects are typically organized in a hierarchical tree arrangement. When a user wants to gain access to a resource, it must first locate the resource object. Often this location step requires a time-consuming search through a large directory tree.
Often, once an object is selected, the user may want to perform an action on the object. For example, assume that one object is a printer object. A user may want to view the jobs at a specific printer. In a typical object oriented system, the user would first invoke a printer control object, capable of performing the `view jobs` function, and then select the printer object on which it wishes to perform the action. Both the printer control object and the printer object will be stored at different locations in the directory tree, and therefore two searches will be required to perform a simple "view jobs" function. Thus it can be seen that although the global networks are more easy to maintain than the local networks, the size of the database may result in increased time delays and user frustration.
What is needed, therefore, is a means for providing an improved method and apparatus for performing actions on objects.